package net.xo68.coordinator.core.gid;

import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

/**
 * 全局编号配置
 */
@Data
@Slf4j
@Configuration
@ConfigurationProperties("wuxie.coordinator.gid")
public class GidProperties {

    private String groupId;
    private String dataPath;
    private String serverAddress;
    private String clusterAddress;
    /**
     * // 一个 follower 当超过这个设定时间没有收到 leader 的消息后，变成 candidate 节点的时间。
     *  // leader 会在 electionTimeoutMs 时间内向 follower 发消息（心跳或者复制日志），如果没有收到，
     *  // follower 就需要进入 candidate状态，发起选举或者等待新的 leader 出现，默认1秒。
     */
    private int electionTimeout=1000;
    /**
     * 是否关闭 Cli 服务，默认不关闭
     */
    private boolean disableCli=false;
    /**
     * 自动 Snapshot 间隔时间，默认一个小时
     */
    private int snapshotIntervalSecs   = 3600;
}
